The present disclosure relates to software and, in particular, to software for rendering electronic documents.
Electronic documents (or documents) can include various kinds of content. For example, a word processing document can contain text, a embedded video presentation, and an embedded electronic spreadsheet—all of which have a visual representation on one or more pages of the document. Documents can be represented as tree data structures where leaf nodes represent content (e.g., text, video presentations, spreadsheets) and non-leaf nodes represent groupings or arrangement of content. Trees can be used to display and modify documents by software applications. Software applications for specific types of documents (e.g., a word processors, spreadsheets) typically have a predetermined set of content types that they can natively render. Applications conventionally deal with non-native content by ignoring the content, translating the content into a native format and rendering the native format. Alternatively, applications can invoke auxiliary software (e.g., Object Linking and Embedding/ActiveX) to render the content into a fixed rectangular region on a rendering of a document page. But the above approaches do not allow embedded content to be composited since the embedded content is rendered without reference to other embedded content.